package com.woniuxy.patrol.job;

import com.woniuxy.patrol.service.PatrolTaskService;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * XXL-JOB定时任务执行器（每日凌晨生成巡更任务）
 */
@Component
public class PatrolTaskXxlJob {
    @Resource
    private PatrolTaskService taskService;

    /**
     * 每日凌晨执行任务生成 测试用10分钟调度一次
     */
    @XxlJob("patrol_daily_task_generator")
    public void generateDailyTasks() {
        XxlJobHelper.log("开始执行每日巡更任务生成...");
        try {
            // 调用服务层生成任务
            taskService.generateDailyTasks();
            XxlJobHelper.handleSuccess("每日巡更任务生成成功");
        } catch (Exception e) {
            XxlJobHelper.handleFail("任务生成失败：" + e.getMessage());
        }
    }

    /**
     * 每日检查任务完成情况（自动更新未完成任务状态）测试用10分钟调度一次
     */
    @XxlJob("patrol_task_checker")
    public void checkTaskCompletion() {
        XxlJobHelper.log("开始检查当日任务完成情况...");
        try {
            // 逻辑：查询未完成任务，更新状态为"已逾期"
            taskService.checkAndUpdateExpiredTasks();
            XxlJobHelper.handleSuccess("任务检查完成");
        } catch (Exception e) {
            XxlJobHelper.handleFail("任务检查失败：" + e.getMessage());
        }
    }
}
